package T03_PreparedStatementUse.explain;

/**
 * 三、PreparedStatement的使用
 *    1.PreparedStatement介绍
 *      ①.可以通过调用 Connection 对象的 preparedStatement(String sql) 方法获取 PreparedStatement 对象
 *      ②.PreparedStatement 接口是 Statement 的子接口，它表示一条预编译过的 SQL 语句
 *      ③.PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示，调用 PreparedStatement 对象的
 *         setXxx() 方法来设置这些参数. setXxx() 方法有两个参数，第一个参数是要设置的 SQL
 *         语句中的参数的索引(从 1 开始)，第二个是设置的 SQL 语句中的参数的值
 *    2.PreparedStatement vs Statement
 *      ①代码的可读性和可维护性
 *      ②PreparedStatement 能最大可能提高性能:
 *           - DBServer会对预编译语句提供性能优化。因为预编译语句有可能被重复调用，
 *             所以语句在被DBServer的编译器编译后的执行代码被缓存下来，那么下次调
 *             用时只要是相同的预编译语句就不需要编译，只要将参数直接传入编译过的语
 *             句执行代码中就会得到执行。
 *           - 在statement语句中,即使是相同操作但因为数据内容不一样,所以整个语句
 *             本身不能匹配,没有缓存语句的意义.事实是没有数据库会对普通语句编译后的
 *             执行代码缓存。这样<u>每执行一次都要对传入的语句编译一次。
 *           - (语法检查，语义检查，翻译成二进制命令，缓存)
 *      ③PreparedStatement 可以防止 SQL 注入
 *   4.Java与SQL对应数据类型转换表
 *      图pic/java与SQL对应数据类型转换表.png
 *
 *
 */
public class Test01 {
}
